@PhDThesis{Arantes:2016:CoStAn,
author = "Arantes, Alessandro Oliveira",
title = "REACTOR: Combining static analysis, testing and reverse
engineering to detect software defects",
school = "Instituto Nacional de Pesquisas Espaciais (INPE)",
year = "2016",
address = "S{\~a}o Jos{\'e} dos Campos",
month = "2016-05-02",
keywords = "static code analysis, software testing, reverse engineering, test
case generation, test oracle, an{\'a}lise est{\'a}tica de
c{\'o}digo fonte, testes de software, engenharia reversa,
gera{\c{c}}{\~a}o de caso de teste, or{\'a}culo de teste.",
abstract = "It is increasingly common the use of computer systems to replace
human labor in critical systems, and since these systems have
become more autonomous in decision making, they demand a high
degree of quality and robustness. INPE develops embedded systems
for scientific satellites and stratospheric balloons;
consequently, the process of verification and validation require
special care in detecting and preventing defects. In terms of
complexity and system\${'}\$s domain in question, these
processes consume specialists manpower for a long period. In this
scenario, the application of techniques that can automatically
support test process provide a significant gain in specialists
productivity and efficiency. For this purpose, this work performs
the source code reverse engineering in order to support a
combination of two V\\&V processes, static source code analysis
and software testing, in order to detect a wider range of defects.
The proposed method, called REACTOR (Reverse Engineering for
stAtic Code analysis and Testing to detect sOftwaRe defects),
complements the traditional way that static code analyzers work by
using dynamic information obtained by an automated test case
generator, which combines three different black box techniques,
being also possible to infer a set of estimated expected results
similar to a test oracle. However, the combination of such
techniques is not trivial, especially in terms of tasks that
commonly demand some action that are not easily automated.
Furthermore, the static analysis by itself can not reveal several
types of defects that can only be detected by combining static
analysis and dynamic information. The REACTOR method has been
implemented in a software tool, also called REACTOR, which exempts
from a large manual labors amount from testers by automating the
process and basing only on applications source code. In addition,
REACTOR was applied to some case studies including one of the
space application domain, and it performed better than three other
well known static code analyzers. RESUMO: {\'E} cada vez mais
comum a utiliza{\c{c}}{\~a}o de sistemas computacionais em
substitui{\c{c}}{\~a}o {\`a} m{\~a}o de obra humana em
sistemas cr{\'{\i}}ticos, e na medida em que estes sistemas
t{\^e}m se tornado mais aut{\^o}nomos para tomar decis{\~o}es,
eles exigem um alto grau de qualidade e robustez. O INPE
desenvolve sistemas embarcados para sat{\'e}lites
cient{\'{\i}}ficos e bal{\~o}es estratosf{\'e}ricos;
consequentemente, os processos de verifica{\c{c}}{\~a}o e
valida{\c{c}}{\~a}o exigem cuidados especiais na
detec{\c{c}}{\~a}o e preven{\c{c}}{\~a}o de defeitos. E tendo
em vista a complexidade e o dom{\'{\i}}nio dos sistemas em
quest{\~a}o, estes processos consomem a m{\~a}o de obra
especialista por um longo per{\'{\i}}odo. Neste cen{\'a}rio, a
aplica{\c{c}}{\~a}o de t{\'e}cnicas que possam efetuar testes
de forma autom{\'a}tica auxiliam o processo proporcionando um
ganho significativo de produtividade e efic{\'a}cia no trabalho
dos especialistas. Com esse objetivo, este trabalho realiza a
engenharia reversa de c{\'o}digo-fonte de modo a combinar dois
processos de V\\&V, an{\'a}lise est{\'a}tica de c{\'o}digo
fonte e teste de software, a fim de detectar uma gama mais ampla
de defeitos. O m{\'e}todo proposto, denominado REACTOR (Reverse
Engineering for stAtic Code analysis and Testing to detect
sOftwaRe defects), complementa a maneira tradicional pela qual os
analisadores de c{\'o}digo est{\'a}tico trabalham usando
informa{\c{c}}{\~o}es din{\^a}micas obtidas por um gerador de
caso de teste automatizado, que combina tr{\^e}s t{\'e}cnicas de
caixa preta diferentes, sendo tamb{\'e}m poss{\'{\i}}vel
inferir um conjunto de resultados esperados estimados similar a um
or{\'a}culo de teste. Ainda assim, a leitura do c{\'o}digo fonte
est{\'a}tico por si s{\'o} pode n{\~a}o revelar v{\'a}rios
tipos de defeitos que s{\'o} podem ser detectados combinando a
an{\'a}lise est{\'a}tica com informa{\c{c}}{\~a}o
din{\^a}mica. O m{\'e}todo REACTOR foi implementado em uma
ferramenta de software, tamb{\'e}m chamado de REACTOR, que poupa
os testadores de um grande volume de trabalho manual automatizando
o processo e baseando-se apenas no c{\'o}digo fonte. Al{\'e}m
disso, a REACTOR foi aplicada em alguns casos de estudo incluindo
uma aplica{\c{c}}{\~a}o da {\'a}rea espacial, e seu desempenho
foi melhor do que outras tr{\^e}s conhecidos analisadores de
c{\'o}digo est{\'a}tico.",
committee = "Carvalho, Solon Ven{\^a}ncio de (presidente) and Santiago
J{\'u}nior, Valdivino Alexandre de (orientador) and Vijaykumar,
Nandamudi Lankalapalli (orientador) and Queiroz, Gilberto Ribeiro
de and Musa, Daniela Leal and Shiguemori, Elcio Hideiti",
copyholder = "SID/SCD",
englishtitle = "REACTOR: Combinando an{\'a}lise est{\'a}tica, teste de software
e engenharia reversa para detec{\c{c}}{\~a}o de defeitos de
software",
language = "en",
pages = "210",
ibi = "8JMKD3MGP3W34P/3LHFRE2",
url = "http://urlib.net/ibi/8JMKD3MGP3W34P/3LHFRE2",
targetfile = "publicacao.pdf",
urlaccessdate = "28 abr. 2024"
}